/****************************************************************************\ 
*                                                                            *
*  SNEE (Sensor NEtwork Engine)                                              *
*  http://code.google.com/p/snee                                             *
*  Release 1.0, 24 May 2009, under New BSD License.                          *
*                                                                            *
*  Copyright (c) 2009, University of Manchester                              *
*  All rights reserved.                                                      *
*                                                                            *
*  Redistribution and use in source and binary forms, with or without        *
*  modification, are permitted provided that the following conditions are    *
*  met: Redistributions of source code must retain the above copyright       *
*  notice, this list of conditions and the following disclaimer.             *
*  Redistributions in binary form must reproduce the above copyright notice, *
*  this list of conditions and the following disclaimer in the documentation *
*  and/or other materials provided with the distribution.                    *
*  Neither the name of the University of Manchester nor the names of its     *
*  contributors may be used to endorse or promote products derived from this *
*  software without specific prior written permission.                       *
*                                                                            *
*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS   *
*  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, *
*  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR    *
*  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR          *
*  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,     *
*  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,       *
*  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR        *
*  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF    *
*  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING      *
*  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS        *
*  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.              *
*                                                                            *
\****************************************************************************/
package uk.ac.manchester.cs.diasmc.querycompiler.whenScheduling.qosaware.cvx;

public class CVXSolution {

    CVXSolutionStatus status;

    double opt_val = Double.NaN;

    double alpha = Double.NaN;

    double beta = Double.NaN;
    
    double pi = Double.NaN;
    
    double epsilon = Double.NaN;
    
    double lambdaDays = Double.NaN;

    public CVXSolution(final CVXSolutionStatus _status, final double _opt_val,
	    final double _alpha, final double _beta, final double _pi, 
	    final double _epsilon, final double _lambdaDays) { 
	this.status = _status;
	this.opt_val = _opt_val;
	this.alpha = _alpha;
	this.beta = _beta;
	this.pi = _pi;
	this.epsilon = _epsilon;
	this.lambdaDays = _lambdaDays;
    }

    public CVXSolution(final CVXSolutionStatus _status) {
	this.status = _status;
    }

    public final double getAlpha() {
	return this.alpha;
    }

    public final double getBeta() {
	return this.beta;
    }

    public final double getOpt_val() {
	return this.opt_val;
    }

    public final double getPi() {
    	return this.pi;
    }
    
    public final double getEpsilon() {
    	return this.epsilon;
    }

    public final double getLambdaDays() {
    	return this.lambdaDays;
    }
    
    public final CVXSolutionStatus getStatus() {
	return this.status;
    }

    @Override
	public final String toString() {
	return "Status: " + this.status + " OptVal=" + this.opt_val + " Alpha="
		+ this.alpha + " Beta=" + this.beta;
    }

}
